package com.liliudong.template.common.request.sys;

import cn.hutool.core.util.StrUtil;
import com.liliudong.template.common.constant.ExMessage;
import com.liliudong.template.common.entity.sys.SysMenu;
import com.liliudong.template.common.exception.BizException;
import lombok.Data;

import java.util.Objects;

/**
 *  新增DTO
 *
 * @author liudo
 * @date 2024-08-01 08:52:30
 */
@Data
public class SysMenuAddRequest {
	/**
	 *
	 */
    private Long parentId;
	/**
	 *
	 */
    private String name;
	/**
	 *
	 */
    private SysMenu.Type type;
	/**
	 *
	 */
    private String icon;
	/**
	 *
	 */
    private Integer sort;
	/**
	 *
	 */
    private String component;
	/**
	 *
	 */
    private String permission;
	/**
	 *
	 */
    private SysMenu.Visible visible;

	/**
	 * 参数检查
	 */
	public void check() {
		// 校验 目录和菜单ICON不能为空
		if (Objects.equals(this.getType(), SysMenu.Type.CATALOG) ||
				Objects.equals(this.getType(), SysMenu.Type.MENU)) {
			if (StrUtil.isBlank(this.getIcon())) {
				throw new BizException(ExMessage.SYS_MENU_ICON_EMPTY);
			}
		}
		// 菜单类型为菜单时，组件路径不能为空
		if (Objects.equals(this.getType(), SysMenu.Type.MENU) &&
				StrUtil.isBlank(this.getComponent())) {
			throw new BizException(ExMessage.SYS_MENU_COMPONENT_EMPTY);
		}
	}
}
